/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pedidos.Producto.DAO;

import Pedidos.Producto.BEAN.ProductoBEAN;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import javax.swing.JTextField;
import sape.Conexion;

/**
 *
 * @author Diego
 */

public class ProductoDAO {

 
 public ProductoDAO(){
   
 }

 
public static String agregarProducto(ProductoBEAN producto) {
    
    Conexion db=new Conexion();
    db.estableceConexion();
    try {
        Statement s=db.conexion.createStatement();
    String insert = "INSERT INTO \"public\".producto (pronombre, proprecio, proiddescripcion, proestado)";
    insert+="VALUES ('"+producto.getNombre()+"',"+producto.getPrecio()+", '"+producto.getDescripcion() +"', 'Activo')";
    s.execute(insert);
    }catch (SQLException e){
        db.cierraConexion();
        return "SQLERROR";
    }
    db.cierraConexion();
    return "OK";
}
public static String modificarProducto(ProductoBEAN producto){
        Conexion db=new Conexion();
    db.estableceConexion();
    try {
        Statement s=db.conexion.createStatement();
    String insert = "UPDATE \"public\".producto SET";
    insert+=" \"pronombre\" = '"+ producto.getNombre()+"' ,";
    insert+=" \"proprecio\" = "+producto.getPrecio()+" ,";
    insert+=" \"proiddescripcion\" = '"+producto.getDescripcion()+"' ";
    insert+=" WHERE proidproducto = "+ producto.getId()  +";";
    s.execute(insert);
    }catch (SQLException e){
        db.cierraConexion();
        return "SQLERROR";
    }
    db.cierraConexion();
    return "OK";
}
public static String eliminarProducto(int id_producto){
        Conexion db=new Conexion();
    db.estableceConexion();
    try {
        Statement s=db.conexion.createStatement();
    String insert = "UPDATE \"public\".producto SET \"proestado\" = 'Inactivo' WHERE proidproducto = "+ id_producto+";";
    s.execute(insert);
    }catch (SQLException e){
        db.cierraConexion();
        return "SQLERROR";
    }
    db.cierraConexion();
    return "OK";
}
public static ArrayList<ProductoBEAN> getListaProductos(){  
    
    ArrayList<ProductoBEAN>lista=new ArrayList<ProductoBEAN>();
    Conexion db=new Conexion();
    db.estableceConexion();
    try {
        Statement s=db.conexion.createStatement();
    String query = "select * from \"public\".producto where proestado='Activo' ;";
    s.execute(query);
    ResultSet rs = s.getResultSet();
    while((rs!=null) && (rs.next()))
    {
        ProductoBEAN producto=new ProductoBEAN(rs.getString(2), rs.getDouble(3), rs.getString(4));
        producto.setId(rs.getInt(1));
        producto.setEstado(rs.getString(5));
        lista.add(producto);
        
    }
    }catch (SQLException e){
        db.cierraConexion();
        return null;
        
    }
    db.cierraConexion();
    return lista;
 }
public static ProductoBEAN getProducto(int Id_Producto){
    ArrayList<ProductoBEAN>lista=new ArrayList<ProductoBEAN>();
    Conexion db=new Conexion();
    db.estableceConexion();
    try {
        Statement s=db.conexion.createStatement();
        
    String query = "select * from \"public\".producto where proestado='Activo' AND proidproducto="+Id_Producto + " ;";
    s.execute(query);
    ResultSet rs = s.getResultSet();
    
    if( (rs!=null) && (rs.next()) ){
        ProductoBEAN producto=new ProductoBEAN(rs.getString(2), rs.getDouble(3), rs.getString(4));
        producto.setId(rs.getInt(1));
        producto.setEstado(rs.getString(5));
        db.cierraConexion();
        return producto;
    }
        db.cierraConexion();
        return null;
   
    }catch (SQLException e){
        db.cierraConexion();
        return null;
    }



}

public static boolean validarNombre(JTextField tbNombre) {
        if (tbNombre.getText().trim().length() == 0) {
            System.out.println("ERROR:Nombre vacio.");
            //    JOptionPane.showConfirmDialog(this,"ERROR:Nombre vacio.");
            //  Otras acciones de validacion.
            return false;
        }
        System.out.println("A.");
        return true;
    }
public static boolean validarPrecio(JTextField tbPrecio) {
        if (tbPrecio.getText().trim().length() == 0) {
            //    JOptionPane.showConfirmDialog(this,"ERROR:Precio vacio.");
            System.out.println("ERROR:Precio vacio.");
            //  Otras acciones de validacion.
            return false;
        }
        System.out.println("B");
        return true;
    }

}
